《着色器语言GLSL ES文档》

文档的阐述侧重于总结,把偏重于记忆性的东西总结出来,各类编程语言大同小异,本文档默认大家有计算机语言基础,比如变量、数据类型、结构体是对什么的抽象,在语言预处理、编译时起什么作用。

一、概述

着色器语言GLSL ES语法类似高级语言C语言,编程时需要定义变量的数据类型,属于强类型语言, 运行在GPU中,可以结合WebGL 在浏览器中展现模拟3D世界。

二、GLSL用户自定义标识符命名规则

变量、常量、函数、语句块名字命名,也就是着色器语言GLSL ES标识符的命名规则

三、GLSL ES 1.0关键字

in const vec2 bvec2 if do highp
out TRUE vec3 bvec3 else void medium
inout FALSE vec4 bvec4 return while struct
attribute float ivec2 mat2 continue sampler2D lowp
varying int ivec3 mat3 for samplerCubebe precision
uniform bool ivec4 mat4 break invariant discard

四、GLSL ES运算符(操作符)

运算符 意义 案例
+、-、*、/ 加减乘除 运算优先级和数学一样
++、-- 自增、自减

i++;

//语句执行一次变量i本身加一

=

赋值

int a;

a=10;

//把整数10赋值给变量a

+=、-=、*=、/= 算术赋值

int a=2;

a+=10;

//整数a加上10得出12,把计算结果在赋值给a

<、>、<=、>= 与数学表达意思相同

比较结果返回布尔值

int a=10;

int b=20;

if(a<b){

a++;

}

// a小于b,返回true,if里面的语句会执行,否则不会执行

==、!= 比较

if(a==b);

//判断a与b是否相等

if(a!=b); //判断a与b是否不相等

五、存储限定字

六、GLSL ES语言内置变量(顶点着色器)

在顶点着色器编程阶段使用,代码位于main函数里面,可以在main函数里面利用vec4等构造函数直接定义参数,也可以把attribute定义的全局变量赋值给内置变量

七、GLSL ES语言内置变量(片元着色器)

开发业余时间,会不定期更新,同时完善总结不到位的内容,如果那些内容不够完善,大家可以加QQ群提出来,WebGL和three.js交流群:187740169,